Electronic messaging has dramatically changed the manner in which people communicate with one another in the digital age. Electronic messaging systems, for example, permit users on different computers to communicate with one another by transmitting information such as text messages and the like between the different computers. Electronic messaging is often used to permit employees in a company to communicate with other employees connected to the company's internal network, regardless of whether they are in the same or another company facility. Also, due to the explosive growth of the Internet, electronic messaging has now become a relatively common way for anyone with a computer to communicate with other computer users all over the world.
In most electronic messaging systems, users are assigned user identifiers, or "user id's" that uniquely identify each user. Furthermore, each user is typically assigned one or more "mailboxes," (also referred to as "post office boxes") that have a unique address so that any user wishing to send an electronic message (often referred to as an "e-mail") to another user can do so by addressing the electronic message to the mailbox assigned to that user.
Many electronic messaging systems furthermore keep electronic "address books," which typically include contact databases within which are stored records of the mailbox addresses for different users. Therefore, for example, a user wishing to send an electronic message to a user named John Smith, whose mailbox address is "smithj@xyz.com", is then able to search through an address book to find an entry for "Smith, John", rather than having to remember a relatively cryptic mailbox address that is assigned to that user.
Some address books also store additional information about users, such as telephone numbers, mailing addresses, job titles, and other information that is more or less unrelated to electronic messaging. Moreover, such address books have also been integrated with other personal information management (PIM) tools such as electronic calendars, to-do lists, project planners, and meeting scheduling tools. One type of electronic messaging system, known as "groupware", tightly integrates all of these functions together to enable users that work together to collaborate more effectively with one another.
An address book is often referred to as a "contact manager," as a user is capable of using an address book to maintain a wide variety of information about many different people (referred to in this context as "contacts"). As the use of electronic messaging has become more widespread, many computer users send and receive more electronic messages to and from a larger number of other computer users. Contact management therefore becomes more important for these users so that they can accurately keep track of other users with whom they correspond.
Particularly in many groupware systems, a global or master address book is maintained on a central computer for shared access by all users of such a system. A global address book typically includes information Rout all users of the system, and may include hundreds or thousands of records for larger organizations.
Any individual user often may also keep a local address book that contains only the users with which that user regularly corresponds. However, whenever that user wishes to correspond with another user that is not in his or her local address book, the user often must search through the global address book to find the mailbox address for the other user (a process referred to as "name lookup"), which can be relatively time consuming in a large global address book that is shared by many users.
Some systems also permit a process known as "partial" name lookup to permit a search to be performed concurrently with a user typing in the name of a user to locate in an address book. Often, the partial name lookup processes searches first for matching entries in a use's local address book, and if none are found, searches for matching entries in a global address book. For example, as a user types in the name "Smith, John", a partial name lookup process would retrieve all address book entries that start with a user name "s" after the user typed the letter "s", then retrieve only the address book entries that start with the user name "sm" after the user typed the letter "m", etc. Eventually, the user would be left with a relatively manageable list of entries to select from as the intended recipient of an electronic message.
Particularly with large global address books, partial name lookup can be somewhat time consuming, so it is often desirable to locate a desired recipient with a minimum number of input characters. However, one problem associated with the search processes for conventional address books is that such processes typically order search results alphabetically. Therefore, for example, if a user is attempting to locate the entry for "Smith, John" in an address book that contains entries for users such as "Smith, Aaron", "Smith, Betty", "Smith, Fred", "Smith, John", "Smith, Joseph", and "Smith, Stephanie", a user typing in the letters "smith" would be presented with an alphabetically-arranged list of these users.
The searching user may have worked with John Smith many times before, and may have never even met any of the other users. Or, for example, the searching user and John Smith may be located in the same office building, or may both be engineers, while the other users are located in other facilities or are managers, assembly line workers, lawyers, etc. Nonetheless, the searching user still receives an alphabetical list, and he or she must scan down through the list of users before selecting the desired entry. Conventional electronic messaging systems lack any capability to suggest any particular entry from a list of search results on any basis other than alphabetically.
Some electronic messaging systems also provide the ability to automatically add an entry to a user's local address book in response to receiving an electronic message from another user. However, many users receive literally hundreds of electronic messages a day, with many coming from other users that a particular user has no intention of ever corresponding with again. Creating an entry for each and every user that sends a message can significantly clutter up a user's local address book and make it more difficult for the user to locate specific entries. Moreover, a user may be required to periodically sweep through his or her local address book and remove all useless entries--a process that can be wasteful and time consuming.
Many electronic messaging systems further permit users to be grouped together into "groups" that can be separately named and utilized to send electronic messages to multiple users at once. However, management of groups can become somewhat burdensome, as a user is typically required to manually create the groups by locating and adding each desired user to the groups. Furthermore, unless the user can remember the particular name assigned to a group, the user must either perform a search for the group or manually address an electronic message to each member of the group individually. These additional steps often distract a user and consume additional time, thereby decreasing a user's productivity.
It should therefore be appreciated that the contact management capabilities of many conventional electronic messaging systems are significantly limited and can often have a negative impact on user productivity. Therefore, a significant need has arisen for a manner of improving electronic messaging systems to provide for more intelligent and useful contact management.